<?php

/**
 * 新版本,每个咨询类型. 单独定价.
 */

namespace app\v4\controller;

use think\Db;
use think\facade\Log;

class Symptom
{
    public function getSymptoms()
    {
        $allPnames = Db::name('symptoms')->where(['pid' => 0])->select();
        $allReturnData = [];

        if (!empty($allPnames)) {
            foreach ($allPnames as $k => $row) {
                $allReturnData[$k]['id'] = $row['id'];
                $allReturnData[$k]['pname'] = $row['pname'];
                $allReturnData[$k]['childs'] = Db::name('symptoms')->field('id,cur_name')->where(['pid' => $row['id']])->select();
            }
        }

        $res = ['code' => 0, 'data' => $allReturnData, 'msg' => ''];

        return Json($res);
    }

    /**
     * 将症状排列组合,输出所有排列.
     */
    private function _generateCombinations($input)
    {
        // 将输入字符串按逗号分割
        $symptoms = explode(',', $input);
        $result = [];

        // 生成组合的递归函数
        function combine($elements, $start, $current, &$result)
        {
            // 将当前组合添加到结果中
            if (!empty($current)) {
                $result[] = implode(',', $current);
            }

            // 递归生成组合
            for ($i = $start; $i < count($elements); ++$i) {
                // 包含当前元素
                $current[] = trim($elements[$i]);
                combine($elements, $i + 1, $current, $result);
                // 不包含当前元素
                array_pop($current);
            }
        }

        combine($symptoms, 0, [], $result);

        return $result;
    }

    /**
     * 根据对应症状匹配建议的药方.
     */
    public function index()
    {
        $symptomCategories = [
            '发热,有汗,怕冷怕风,鼻塞,干呕' => ['桂枝汤'],
            '头痛,发热,有汗,怕风' => ['桂枝汤'],
            '使用了泻下法治疗,感觉气在上冲' => ['桂枝汤'],
            '头颈硬痛,发热,有汗,怕风,喝了桂枝汤感觉烦躁' => ['针刺风池(风府穴后再喝桂枝汤)'],
            '喝桂枝汤后有汗多' => ['再喝一次桂枝汤'],
            '经常有汗' => ['桂枝汤'],
            '六七天没大便,头痛,发热,流鼻血' => ['桂枝汤'],
            '头颈硬痛,发热,有汗,怕风,已经好转又开始烦躁' => ['桂枝汤'],
            '便秘或者腹痛,有汗,怕冷' => ['桂枝汤'],
            '脾胃虚弱的人,头颈硬痛,发热,有汗,怕风' => ['桂枝汤'],
            '鼻塞（可兼有发烧）,有汗,怕冷,不口渴,白鼻涕' => ['桂枝汤'],
            '头和身痛（可兼有发烧）,有汗,怕冷,不口渴' => ['桂枝汤'],
            '发烧,有汗,无咳嗽,怕冷,不口渴' => ['桂枝汤'],
            '感觉气从小腹上冲到心脏' => ['桂枝加桂汤'],
            '头颈硬痛,发热,有汗,怕风,腹泻,腹胀,腹痛' => ['桂枝加芍药汤'],
            '平时容易喘憋,头颈硬痛,发热,有汗,怕风' => ['桂枝加厚朴杏子汤'],
            '有汗,怕风,小便困难,四肢难以弯曲和伸直' => ['桂枝加附子汤'],
            '头颈硬痛,怕冷,腹泻,胸闷' => ['桂枝去芍药汤'],
            '头颈硬痛,怕冷,腹泻,胸闷,怕冷' => ['桂枝去芍药加附子汤'],
            '身体疼痛,恶心呕吐,出汗多,惊慌狂躁,睡眠不安' => ['桂枝去芍药加蜀漆牡蛎龙骨救逆汤'],
            '使用温针后烦躁' => ['桂枝甘草龙骨牡蛎汤'],
            '头颈硬痛,怕冷,腹泻,胃部按起来硬' => ['桂枝人参汤'],
            '身体疼痛七八天,恶心呕吐七八天,身体疼痛,烦躁,不能自行翻身,不恶心,不口渴' => ['桂枝附子汤'],
            '喝桂枝汤或腹泻,头颈硬痛,发热,无汗,胃胀,胃痛,小便困难' => ['桂枝去桂加茯苓白术汤'],
            '有汗,身体疼痛' => ['桂枝加芍药生姜各一两人参三两新加汤'],
            '头痛,发热,身体疼痛,腰痛,关节和骨头疼痛,怕风,没汗,气喘' => ['麻黄汤'],
            '头颈硬痛,怕冷,便秘,气喘,胸闷' => ['麻黄汤'],
            '头颈硬痛,怕冷,没汗,发热,八九天没好转,烦躁目眩,流鼻血' => ['麻黄汤'],
            '头颈硬痛,怕冷,没汗,流鼻血' => ['麻黄汤'],
            '发热,怕冷,身体疼痛,没汗,烦躁' => ['大青龙汤'],
            '恶心呕吐,身体不疼,身体有时感觉重' => ['大青龙汤'],
            '鼻塞（可兼有发烧）,无汗,怕冷,口渴,黄鼻涕' => ['大青龙汤'],
            '发烧,无汗,咳嗽,怕冷,口渴,黄痰,黄鼻涕' => ['大青龙汤'],
            '咳嗽（可兼有发烧）,无汗,怕冷,口渴,黄痰' => ['大青龙汤'],
            '喉咙痛（可兼有发烧）,无汗,怕冷,咳嗽,黄痰,黄鼻涕' => ['大青龙汤'],
            '身体疼痛,干呕,发热,咳嗽,或者口渴或者腹泻或者噎膈或者小便困难或者腹胀或者气喘' => ['小青龙汤'],
            '身体疼痛,恶心呕吐,咳嗽,气喘,发热,口渴' => ['小青龙汤'],
            '鼻塞（可兼有发烧）,无汗,怕冷,不口渴,白鼻涕' => ['小青龙汤'],
            '发烧,无汗,咳嗽,怕冷,口渴,白痰,白鼻涕' => ['小青龙汤'],
            '咳嗽（可兼有发烧）,无汗,怕冷,不口渴,白痰' => ['小青龙汤'],
            '头颈硬痛,怕冷,面色发红,无汗,身上痒' => ['桂枝麻黄各半汤'],
            '喝桂枝汤后汗多,一天多次发作忽冷忽热' => ['桂枝二麻黄一汤'],
            '头颈硬痛,怕冷,发热,发热多怕冷少' => ['桂枝二越婢一汤'],
            '发热,精神萎靡,想睡觉' => ['麻黄细辛附子汤'],
            '精神萎靡,想睡觉,身体疼痛,恶心呕吐,两三天,无汗' => ['麻黄附子甘草汤'],
            '有汗,气喘,发热不严重' => ['麻黄杏仁甘草石膏汤'],
            '身体疼痛,恶心呕吐,身体发黄' => ['麻黄连轺赤小豆汤'],
            '头颈硬痛,怕冷,肩背僵硬,无汗,怕风' => ['葛根汤'],
            '身体疼痛,恶心呕吐,便秘,腹泻' => ['葛根汤'],
            '头和身痛（可兼有发烧）,无汗,怕冷,口渴' => ['葛根汤'],
            '发烧,无汗,无咳嗽,怕冷,口渴' => ['葛根汤'],
            '喉咙痛（可兼有发烧）,无汗,怕冷,不咳嗽' => ['葛根汤'],
            '身体疼痛,恶心呕吐,便秘,不腹泻,呕吐' => ['葛根加半夏汤'],
            '头颈硬痛,怕冷,气喘,有汗' => ['葛根黄芩黄连汤'],
            '头颈硬痛,怕冷,有汗,怕风' => ['桂枝加葛根汤'],
            '身体疼痛,恶心呕吐,腹胀,感觉身体重,难以翻身,口唇麻木不灵活,面色晦暗,说胡话,小便失禁,有汗' => ['白虎汤'],
            '身体疼痛,恶心呕吐,手足厥逆' => ['白虎汤'],
            '恶心呕吐,口渴,想喝水,不头颈硬痛,不怕冷' => ['白虎加人参汤'],
            '口干舌燥' => ['白虎加人参汤'],
            '有汗,烦躁' => ['白虎加人参汤'],
            '身体疼痛,恶心呕吐,七八天没好,怕风,口渴,舌苔干燥,烦燥,想喝很多水' => ['白虎加人参汤'],
            '身体疼痛,恶心呕吐,发热不严重,口渴,咽喉干燥,心烦,后背有点怕冷' => ['白虎加人参汤'],
            '身体疼痛和恶心呕吐好转,身体虚弱,恶心呕吐' => ['竹叶石膏汤'],
            '腹胀,说胡语' => ['调胃承气汤'],
            '有汗,不怕冷,发热' => ['调胃承气汤'],
            '身体疼痛,恶心呕吐,十几天,胃部不适,呕吐,大便溏稀,腹胀,烦躁' => ['调胃承气汤'],
            '腹胀,不呕吐,不腹泻,心烦' => ['调胃承气汤'],
            '头颈硬痛,怕冷,出汗后不好转' => ['调胃承气汤'],
            '身体疼痛,呕吐,腹部胀满' => ['调胃承气汤'],
            '便秘,有汗,不怕冷,感觉身体沉重,气短,腹胀,气喘,潮热,便秘' => ['小承气汤'],
            '潮热,便秘,六七天' => ['小承气汤'],
            '有汗,大便干硬,说胡语' => ['小承气汤'],
            '腹泻,说胡话,便秘' => ['小承气汤'],
            '便秘,说胡话,潮热' => ['小承气汤'],
            '头颈硬痛,怕冷,呕吐,腹泻,出汗,心烦,小便频繁,大便干硬' => ['小承气汤'],
            '两三天,胃胀,到四五天能吃饭' => ['小承气汤'],
            '腹胀,潮热,手脚有汗,便秘,说胡话' => ['大承气汤'],
            '胃部嘈杂,烦燥,大便干硬' => ['大承气汤'],
            '烦热,有汗就好转,下午发热' => ['大承气汤'],
            '身体疼痛,恶心呕吐,腹泻,便秘,下午发热,不怕冷,自言自语,说胡话,心烦,腹胀,腹痛' => ['大承气汤'],
            '便秘,说胡话,潮热,吃得下,大便干硬' => ['大承气汤'],
            '有汗,说胡话,便秘' => ['大承气汤'],
            '便秘,潮热,手脚有汗,说胡话' => ['大承气汤'],
            '便秘,腹泻,胃部嘈杂,烦躁' => ['大承气汤'],
            '烦躁,出汗后好转,反复发作,下午发热' => ['大承气汤'],
            '腹泻后六七天便秘,烦躁,腹满,腹痛' => ['大承气汤'],
            '小便困难,解大便有时难有时简单,发热,气喘胸闷不能平卧' => ['大承气汤'],
            '六七天便秘,不能吃饭,小便顺利,大便干硬' => ['大承气汤'],
            '便秘六七天,小便顺利,大便干硬' => ['大承气汤'],
            '身体疼痛,恶心呕吐,六七天,视物昏蒙不清,便秘,发热' => ['大承气汤'],
            '发热,便秘,有汗' => ['大承气汤'],
            '有汗,腹胀,腹痛' => ['大承气汤'],
            '腹胀' => ['大承气汤'],
            '有宿食' => ['大承气汤'],
            '精神萎靡疲惫,想睡觉,口干,咽喉干燥' => ['大承气汤'],
            '精神萎靡疲惫,想睡觉,腹泻清水,胃痛,口干燥' => ['大承气汤'],
            '精神萎靡疲惫,想睡觉,腹胀,便秘' => ['大承气汤'],
            '头颈硬痛,怕冷,狂躁,小腹绞痛' => ['桃核承气汤'],
            '头颈硬痛,怕冷,六七天没好,狂躁,小腹又硬又胀满,小便顺利,流血后好转' => ['抵当汤'],
            '头颈硬痛,怕冷,身体发黄,小腹硬,小便顺利,狂躁' => ['抵当汤'],
            '记性差,大便干硬,排便顺利,大便色黑' => ['抵当汤'],
            '发热,容易饿,便秘,六七天' => ['抵当汤'],
            '胸膈按压疼痛,胃部感觉空虚,短气躁烦,胃部嘈杂,胃部按着硬' => ['大陷胸汤'],
            '身体疼痛,恶心呕吐,六七天,胸脘痞闷感觉热,胃部疼痛,胃部按着硬' => ['大陷胸汤'],
            '身体疼痛,恶心呕吐,十几天,反复发热怕冷,头部微微有汗' => ['大陷胸汤'],
            '头颈硬痛,怕冷,有汗,腹泻,便秘,五六天,舌苔干燥,口渴,下午发热,从胃连着小腹疼按压加重' => ['大陷胸汤'],
            '身体疼痛,恶心呕吐,五六天,呕吐,发热,口苦咽干,头晕,胃胀,胃部按着硬,胃部按压疼痛' => ['大陷胸汤'],
            '痰热瘀阻在胃部,胃脘阻塞胀满' => ['小陷胸汤'],
            '感冒外感风寒,大便次数多,腹泻并且恶心反胃' => ['十枣汤'],
            '发汗,呕吐,腹泻,心烦难以入睡,辗转反侧,烦躁郁闷' => ['栀子豉汤'],
            '发汗(服用泻药),心烦,发热,胸中堵塞憋闷' => ['栀子豉汤'],
            '感受风寒引起的外感热病,发病五六天,发汗或者呕吐或者腹泻后,体温不降,胸中疼痛' => ['栀子豉汤'],
            '大便干燥,便秘,口干,口苦,腹部胀满,气喘,发热,出汗,不怕冷只怕热,身体沉重疼痛,烦躁郁闷' => ['栀子豉汤'],
            '发汗或者呕吐或者腹泻后,心烦,难以入睡,辗转反侧,烦躁郁闷,气短' => ['栀子甘草豉汤'],
            '发汗或者呕吐或者腹泻后,心烦,难以入睡,辗转反侧,烦躁郁闷,呕吐' => ['栀子生姜豉汤'],
            '感受风寒引起的外感热病,被误治(服用泻药),心烦,腹胀,坐卧不安' => ['栀子厚朴汤'],
            '感受风寒引起的外感热病,被误治(服用泻药),身体发热,体温不降,轻微烦躁' => ['栀子干姜汤'],
            '感受风寒引起的外感热病,皮肤发黄,发热' => ['栀子柏皮方'],
            '大便干燥,便秘,发热,出汗,头部出汗身体无汗,小便不畅,口渴' => ['茵陈蒿汤'],
            '感受风寒引起的外感热病,七八日,皮肤发黄,肤色像橘子色,小便不畅,腹胀' => ['茵陈蒿汤'],
            '感受风寒引起的外感热病,痊愈后因劳累而复发' => ['枳实栀子豉汤'],
            '头颈硬痛,怕冷,发病十多天,喜欢安静卧床,胸部胀满,两侧肋骨疼痛' => ['小柴胡汤'],
            '感受风寒引起的外感热病,发病五六天,忽冷忽热,胸部肋骨部胀满不适,神情淡漠,不想吃东西,心情烦躁,时时想吐或者胸中烦闷不呕吐或者口渴或者腹痛或者腹部阻塞胀满,按着发硬或者心悸,小便不畅,不口渴,轻度发热或者咳嗽' => ['小柴胡汤'],
            '感受风寒引起的外感热病,发病四五天,发热,怕风,颈项强硬疼痛,腹部阻塞胀满,手脚温暖,口渴' => ['小柴胡汤'],
            '发烧,女子经期感冒或忽冷忽热恶心想吐' => ['小柴胡汤'],
            '头颈硬痛,怕冷,发病十多天,被误治(服用泻药),呕吐不止,胃脘部疼痛不适,郁闷烦躁' => ['大柴胡汤'],
            '头颈硬痛,怕冷,发病十多天,忽冷忽热' => ['大柴胡汤'],
            '感受风寒引起的外感热病,发热,出汗,体温不降,胃部阻塞胀满,按着发硬,呕吐,腹泻' => ['大柴胡汤'],
            '感受风寒引起的外感热病,发病十三天,胸胁胀满疼痛,呕吐,傍晚时期发热,腹泻' => ['柴胡加芒硝汤'],
            '感受风寒引起的外感热病,发病六七天,发热,轻微怕冷,四肢关节疼痛不适,呕吐,胃部不适有硬' => ['柴胡桂枝汤'],
            '感受风寒引起的外感热病,发病五六天,胸胁胀满不适,胃部不适有硬,小便不畅,口渴,不呕吐,头部出汗,忽冷忽热,心情烦躁' => ['柴胡桂枝干姜汤'],
            '感受风寒引起的外感热病,发病八九天,被误治(服用泻药),胸胁胀满,心情烦躁,惊悸,小便不畅,胡言乱语,身体疼痛沉重,不能翻身' => ['柴胡加龙骨牡蛎汤'],
            '头颈硬痛,怕冷,口苦咽干,头晕,腹泻' => ['黄芩汤'],
            '头颈硬痛,怕冷,口苦咽干,头晕,腹泻' => ['黄芩加半夏生姜汤'],
            '胃部阻塞胀满,按着柔软' => ['大黄黄连泻心汤'],
            '感受风寒引起的外感热病,大量服用泻药(又发汗),胃部阻塞胀满,怕冷,表证解除后' => ['大黄黄连泻心汤'],
            '胃部发硬胀满,怕冷,出汗' => ['附子泻心汤'],
            '感受风寒引起的外感热病,被误治(服用泻药),一日腹泻数十次,大便中有未消化食物,肠鸣音明显,胃部发硬胀满,干呕,心烦' => ['甘草泻心汤'],
            '感受风寒引起的外感热病,发病五六日,呕吐,发热,胃部阻塞胀满按着不痛' => ['半夏泻心汤'],
            '感受风寒引起的外感热病,发汗后表证缓解,胃部阻塞胀满按着疼痛,消化不良,胃中有水气,肠鸣音明显,腹泻' => ['生姜泻心汤'],
            '感受风寒引起的外感热病,腹泻,被误治(服用泻药),胃寒不适,上吐下泻,吃东西入口即吐' => ['干姜黄芩黄连人参汤'],
            '感受风寒引起的外感热病,胸中发热,胃中有热,肠内有寒,腹痛' => ['黄连汤'],
            '感受风寒引起的外感热病,服用发汗药,发汗呕吐后(心下胀满硬痛),胃不舒服,不停打嗝' => ['旋覆代赭汤'],
            '感受风寒引起的外感热病,被误治(服用发汗药又进行过火针治疗)' => ['四逆汤'],
            '感受风寒引起的外感热病,服用泻下药,腹泻,大便夹杂食物残渣,身体疼痛' => ['四逆汤'],
            '发热,头痛,身体疼痛' => ['四逆汤'],
            '身体发冷,体温偏高,腹泻,大便夹杂食物残渣' => ['四逆汤'],
            '出汗多,体温没有降低,身体疼痛,四肢屈伸不利,手脚冰凉,怕冷' => ['四逆汤'],
            '出汗多,腹泻,手脚冰凉' => ['四逆汤'],
            '呕吐,腹泻,出汗,发热,怕冷,四肢屈伸不利,手脚冰凉' => ['四逆汤'],
            '呕吐,腹泻,小便多,出汗多,腹泻,大便夹杂食物残渣,身体发冷,体温偏高' => ['四逆汤'],
            '心肾两虚,精神萎靡疲惫,只想睡觉,腹泻,大便夹杂食物残渣,身体发冷,体温偏高,手脚冰凉,不怕冷,面色发红,或肚子痛或干呕或嗓子疼或停止腹泻' => ['通脉四逆汤'],
            '腹泻,大便夹杂食物残渣,身体发凉,体温偏高,手脚冰凉' => ['通脉四逆汤'],
            '呕吐到没有能吐的了(腹泻到没有能泻的了),虚汗出不止,四肢屈伸不利' => ['通脉四逆汤加猪胆汁汤'],
            '服用泻下药,出汗,白天烦躁无法入睡,晚上安静,不恶心也不口渴,没有感冒相关症状,体温不高' => ['干姜附子汤'],
            '出汗,服用发汗药,症状没有缓解,心烦焦躁' => ['茯苓四逆汤'],
            '怕冷,上吐下泻,腹泻停止,精液血液耗尽' => ['四逆加人参汤'],
            '心肾两虚,精神萎靡疲惫,想睡觉,持续一两天,不口渴不干不苦,后背冷' => ['附子汤'],
            '心肾两虚,精神萎靡疲惫,想睡觉,两三天不缓解(到第四五天腹痛),小便不畅,四肢酸痛沉重,腹泻,或咳嗽或小便通畅或腹泻或呕吐' => ['真武汤'],
            '心肾两虚,精神萎靡疲惫,想睡觉,腹泻' => ['白通汤'],
            '心肾两虚,精神萎靡疲惫,想睡觉,腹泻,服用白通汤腹泻不止,四肢发冷,干呕心烦' => ['白通加猪胆汁汤'],
            '手脚发冷至肘膝' => ['当归四逆汤'],
            '手脚发冷至肘膝,长期觉得冷' => ['当归四逆加吴茱萸生姜汤'],
            '精神萎靡疲惫,想睡觉,两三天后咽喉痛' => ['甘草汤'],
            '精神萎靡疲惫,想睡觉,两三天后咽喉痛,服用甘草汤未愈' => ['桔梗汤'],
            '头颈硬痛,怕冷,出汗,心悸' => ['桂枝甘草汤'],
            '头颈硬痛,身体疼痛,恶心呕吐,出汗,心烦,怕冷,腿抽筋,四肢发冷到膝肘,咽喉干燥,心烦,恶心呕吐' => ['甘草干姜汤'],
            '四肢发冷到膝肘,咽喉干,心烦,大便干燥,便秘,神志不清胡言乱语（或高声说梦话）' => ['甘草干姜汤'],
            '头颈硬痛,身体疼痛,恶心呕吐,出汗,心烦,怕冷,腿抽筋,四肢发冷到膝肘,咽喉干,心烦,恶心呕吐,四肢不冷,腿抽筋' => ['芍药甘草汤'],
            '头颈硬痛,病未愈,出汗,怕冷' => ['芍药甘草附子汤'],
            '头颈硬痛,身体疼痛,恶心呕吐,出汗,不口渴' => ['茯苓甘草汤'],
            '头颈硬痛,身体疼痛,恶心呕吐,四肢冷到膝肘,胃部抽搐' => ['茯苓甘草汤'],
            '头颈硬痛,出汗或者小腹跳或者腹部绞痛或者胸闷或者呼吸急促或者头晕目眩或者烦躁' => ['茯苓桂枝甘草大枣汤'],
            '头颈硬痛,身体疼痛,恶心呕吐,呕吐,腹泻,胃胀,恶心,头晕,出汗,走路不稳' => ['茯苓桂枝白术甘草汤'],
            '头颈硬痛,出汗,腹胀' => ['厚朴生姜甘草半夏人参汤'],
            '头颈硬痛,肚子突然疼痛' => ['小建中汤'],
            '头颈硬痛,胃部抽搐,心烦' => ['小建中汤'],
            '头颈硬痛,心跳不宁' => ['炙甘草汤'],
            '吐泻,头痛,发热,身体疼痛,怕冷(不想喝水)' => ['理中丸'],
            '大病恢复不全,痰或唾液多' => ['理中丸'],
            '吐有蛔虫,心烦,进食即吐' => ['乌梅丸'],
            '大便困难' => ['麻子仁丸'],
            '大便干燥,出汗,小便正常' => ['蜜煎导汤'],
            '头颈硬痛,身体疼痛,恶心呕吐,发热,小腹胀满,小便正常' => ['抵挡丸'],
            '胸腹胀满疼痛,头颈僵硬,出汗' => ['大陷胸丸'],
            '头颈硬痛,出汗,烦躁失眠,想喝水,小便困难' => ['五苓散'],
            '头颈硬痛,身体疼痛,恶心呕吐,出汗,口渴' => ['五苓散'],
            '头颈硬痛,发热,出汗,怕风,心烦,想喝水,喝水即吐' => ['五苓散'],
            '胃胀,口渴烦躁,小便困难' => ['五苓散'],
            '头颈硬痛,淋洗冷水,烦躁,想喝水,不口渴,服用文蛤散未愈' => ['五苓散'],
            '头颈硬痛,发热,出汗,怕冷,不呕吐,胃部胀满,尿频,大便干硬,口渴' => ['五苓散'],
            '吐泻,头痛,发热,身体疼痛,怕热(想喝水)' => ['五苓散'],
            '发烧,肠胃型感冒上吐下泻' => ['五苓散'],
            '头颈硬痛,淋洗冷水,烦躁,想喝水,不口渴' => ['文蛤散'],
            '头颈硬痛,淋洗冷水,烦躁,想喝水,不口渴,胸部胀满,怕冷' => ['白散方'],
            '精神萎靡疲惫,想睡觉,咽喉疼痛' => ['半夏散及汤'],
            '发热出汗怕风,胸部胀满, 气喘' => ['瓜蒂散'],
            '四肢发冷至膝肘,胃胀,心烦,饥饿,不吃东西' => ['瓜蒂散'],
            '发热,头痛未愈,身体疼痛' => ['四逆汤'],
            '精神萎靡疲惫,想睡觉' => ['四逆汤'],
            '大量出汗,腹泻,四肢发冷至膝肘' => ['四逆汤'],
            '发热,怕冷,腹泻,大便夹杂食物残渣' => ['四逆汤'],
            '吐泻出汗,发热,怕冷,四肢抽搐,四肢发冷至膝肘' => ['四逆汤'],
            '恶心,小便正常,发热,四肢发冷至膝肘' => ['四逆汤'],
            '大量出汗,发热,胸腹抽搐,四肢疼痛,腹泻,四肢发冷至膝肘,身体发冷' => ['四逆汤'],
            '腹泻,腹胀,身体疼痛' => ['四逆汤'],
            '吐泻,小便正常,大量出汗,腹泻,大便夹杂食物残渣' => ['四逆汤'],
            '头颈硬痛,身体疼痛,恶心呕吐,出汗,心烦,怕冷,腿抽筋,桂枝汤未痊,四肢冷到膝肘,出汗多' => ['四逆汤'],
            '头颈硬痛,身体疼痛,恶心呕吐,用下法治疗,腹泻,大便夹杂食物残渣,身体疼痛' => ['四逆汤'],
            '精神萎靡疲惫,想睡觉,进食即吐,胸口发热,干呕' => ['四逆汤'],
            '大病未愈,腰以下浮肿' => ['牡蛎泽泻散'],
            '头颈硬痛,身体疼痛,恶心呕吐,行房事,身体沉重,气短,小腹坠重或外阴抽筋,好像有热气从小腹冲到胸口,阳痿,眼花,小腿抽筋' => ['烧裩散'],
            '头颈硬痛,身体疼痛,恶心呕吐,腹泻不止,胃胀,服用理中汤错治' => ['赤石脂禹余粮汤'],
            '精神萎靡疲惫,想睡觉,腹泻,便脓血' => ['桃花汤'],
            '精神萎靡疲惫,想睡觉,三四五天,肚子疼,小便困难,腹泻,便脓血' => ['桃花汤'],
            '大便干燥,咽喉干燥,口中发苦,腹胀,气短,发热,出汗,不怕冷,怕热,身体沉重,口渴,想喝水,小便困难' => ['猪苓汤'],
            '精神萎靡疲惫,只想睡觉,腹泻六七日,小便困难,咳嗽,恶心,口渴,烦躁失眠' => ['猪苓汤'],
            '大便干燥, 进食即吐' => ['吴茱萸汤'],
            '精神萎靡疲惫,想睡觉,吐泻,四肢发冷至膝肘,烦躁,求死' => ['吴茱萸汤'],
            '干呕,只能吐出口水,头痛' => ['吴茱萸汤'],
            '头颈硬痛,身体疼痛,恶心呕吐,六七天后手腕处脉沉迟,四肢发冷至膝肘,咽喉不适,咳脓血,腹泻' => ['麻黄升麻汤'],
            '精神萎靡疲惫,想睡觉,至少得病二三日,心烦难以入睡' => ['黄连阿胶汤'],
            '精神萎靡疲惫,想睡觉,咽喉溃疡,不能说话' => ['苦酒汤'],
            '精神萎靡疲惫,想睡觉,腹泻,咽喉疼痛,心烦' => ['猪肤汤'],
            '精神萎靡疲惫,想睡觉,腹泻,肛门灼热' => ['白头翁汤'],
            '腹泻,肛门灼热' => ['白头翁汤'],
            '鼻塞（可兼有发烧）,有汗,口渴,黄鼻涕' => ['麻杏甘石汤'],
            '发烧,有汗,咳嗽,口渴,黄痰,黄鼻涕' => ['麻杏甘石汤'],
            '咳嗽（可兼有发烧）,有汗,口渴,黄痰' => ['麻杏甘石汤'],
            '喉咙痛（可兼有发烧）,有汗,咳嗽,黄痰,黄鼻涕' => ['麻杏甘石汤'],
            '头和身痛（可兼有发烧）,有汗,怕冷,口渴' => ['桂枝汤+葛根'],
            '发烧,有汗,无咳嗽,怕冷,口渴' => ['桂枝汤+葛根'],
            '喉咙痛（可兼有发烧）,有汗,怕冷,不咳嗽' => ['桂枝汤+葛根'],
            '头和身痛（可兼有发烧）,无汗,怕冷,不口渴' => ['麻黄汤'],
            '发烧,无汗,无咳嗽,怕冷, 不口渴' => ['麻黄汤'],
            '发烧,咳嗽,怕冷, 不口渴,白痰,白鼻涕' => ['桂枝汤+厚朴+杏仁'],
            '咳嗽（可兼有发烧）,有汗,怕冷, 不口渴,白痰' => ['桂枝汤+厚朴+杏仁'],
        ];
        $params = input('');
        $returnData = [];

        $symptomDesc = $params['symptom_desc'] ?? input('symptom_desc');
        if (!empty($symptomDesc)) {
            // $tempArr = explode(',', trim($params['symptom_desc'], '"'));
            $tempArr = $this->_generateCombinations(trim($symptomDesc, '"'));
            if (!empty($tempArr)) {
                // 如果超过 两个症状,需要循环key找到组合症状 对应的药名
                $keysArr = array_keys($symptomCategories);

                if (count($tempArr) > 1) {
                    // 每个排列组合的症状, 都需要 匹配药方
                    foreach ($tempArr as $i => $combineItem) {
                        // 哪个症状匹配的nums最高,就取它 对应的药方
                        $matchNums = 0;
                        $matchKey = '';
                        Log::info('combineItem::'.$combineItem);
                        $combineItemArr = explode(',', $combineItem);

                        foreach ($keysArr as $k => $val) {
                            // Log::info('匹配症状::'.$val);
                            $valArr = explode(',', $val);

                            if (count($valArr) != count($combineItemArr)) {
                                continue;
                            }
                            // 如果 取出的交集==提交的症状数量,并且两者的长度完全相同
                            // 按照症状匹配, 对比药方匹配上的症状数. 优先全部匹配>依次递减. 比如 全部6个症状,没有匹配就5个...依次递减
                            $tempNums = count(array_intersect($combineItemArr, $valArr));
                            // 要有交集 && 症状完全一致
                            if ($tempNums > 0 && $tempNums == count($combineItemArr)) {
                                Log::info('combineItem::'.$combineItem.'::val::'.$val);
                                Log::info('交集::'.json_encode(array_intersect($combineItemArr, $valArr)));
                                // if ($tempNums > $matchNums) {
                                // if ($tempNums == count($combineItemArr)) {
                                $matchNums = $tempNums;
                                $matchKey = $val;
                            }
                        }
                        // 现在全部展开症状, 必须与症状全部对应上
                        // if ($matchNums > 0) $returnData[$matchKey] = $symptomCategories[$matchKey];
                        if (!empty($matchKey)) {
                            $returnData[$matchKey] = $symptomCategories[$matchKey];
                        }
                    }
                }
                // 如果只有一个症状
                if (count($tempArr) == 1) {
                    $returnData[$tempArr[0]] = isset($symptomCategories[$tempArr[0]]) ? $symptomCategories[$tempArr[0]] : '';
                }
            }
        }
        $res = ['code' => 0, 'data' => $returnData, 'msg' => ''];

        return Json($res);
    }
}
